﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;

namespace Accountability4net.Contact
{
    /// <summary>
    /// This is a contact. The properties map to VCARD v2.1.
    /// </summary>
    public interface IContact
    {
        /// <summary>
        /// VCARD v2.1 UID property
        /// </summary>
        Guid ID { get; set; }
        /// <summary>
        /// VCARD v2.1 N property.
        /// </summary>
        IName Name { get; set; }
        /// <summary>
        /// VCARD v2.1 PHOTO property
        /// </summary>
        Image Photo { get; set; }
        /// <summary>
        /// VCARD v2.1 BDAY property
        /// </summary>
        DateTime Birthdate { get; set; }
        /// <summary>
        /// VCARD v2.1 ADR property
        /// </summary>
        EventedList<IAddress> Address { get; }
        /// <summary>
        /// VCARD v2.1 TEL property
        /// </summary>
        EventedList<ITelephoneNumber> Telephone { get; }
        /// <summary>
        /// VCARD v2.1 EMAIL property
        /// </summary>
        string Email { get; set; }
        /// <summary>
        /// VCARD v2.1 TZ property
        /// </summary>
        TimeZone TimeZone { get; set; }
        /// <summary>
        /// VCARD v2.1 TITLE property
        /// </summary>
        string Title { get; set; }
        /// <summary>
        /// VCARD v2.1 ROLE property
        /// </summary>
        string Role { get; set; }
        /// <summary>
        /// VCARD v2.1 ORG property first field
        /// </summary>
        string Organization { get; set; }
        /// <summary>
        /// VCARD v2.1 ORG property second field
        /// </summary>
        string OrganizationalUnit { get; set; }
        /// <summary>
        /// VCARD v2.1 NOTE property
        /// </summary>
        string Comment { get; set; }
        /// <summary>
        /// VCARD v2.1 URL property
        /// </summary>
        Uri Web { get; set; }
    }
}
